home *** CD-ROM | disk | FTP | other *** search
- unit WebMod;
- interface
- uses
- Windows, Messages, SysUtils, Classes, HTTPApp, MidItems, QueryComps,
- CompProd, PagItems, MidProd, DrBob42X;
-
- type
- TWebModule1 = class(TWebModule)
- MidasPageProducer1: TMidasPageProducer;
- QueryForm1: TQueryForm;
- QueryButtons1: TQueryButtons;
- QueryFieldGroup1: TQueryFieldGroup;
- QuerySelectOptions: TQuerySelectOptions;
- QueryPassword: TQueryPassword;
- QueryCheckbox: TQueryCheckbox;
- PageProducer1: TPageProducer;
- procedure WebModule1WebActionItem1Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure WebModule1WebActionItem2Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure WebModule1WebActionItem3Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
- const TagString: String; TagParams: TStrings;
- var ReplaceText: String);
- private
- { Private declarations }
- procedure AddLogEntry(Message: String);
- function LogEntries: String;
- public
- { Public declarations }
- end;
-
- var
- WebModule1: TWebModule1;
-
- implementation
- {$R *.DFM}
-
- const
- LogFile = 'c:\logfile.txt';
-
- procedure TWebModule1.AddLogEntry(Message: String);
- var
- f: System.Text;
- begin
- System.Assign(f,LogFile);
- Append(f);
- // start with empty file, in order to be able to append
- writeln(f,Message);
- Close(f)
- end;
-
- function TWebModule1.LogEntries: String;
- var
- f: System.Text;
- Str: String;
- begin
- Result := '<PRE>';
- System.Assign(f,LogFile);
- Reset(f);
- while not eof(f) do
- begin
- readln(f,Str);
- Result := Result + Str
- end;
- Close(f);
- Result := Result + '</PRE>'
- end;
-
- procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- var
- FileStream: TFileStream;
- begin
- try
- FileStream := TFileStream.Create('d:\www\drbob42\gif\javahelp.gif',
- fmOpenRead OR fmShareDenyNone);
- try
- FileStream.Position := 0;
- Response.ContentType := 'image/gif';
- Response.ContentStream := FileStream;
- Response.SendResponse; // send header + Stream
- AddLogEntry('d:\www\drbob42\gif\javahelp.gif shown')
- finally
- FileStream.Free
- end
- except
- end
- end;
-
- procedure TWebModule1.WebModule1WebActionItem2Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- const
- MaxBanners = 4;
- Banners: Array[0..MaxBanners-1] of String =
- ('d:\www\drbob42\gif\robohlp1.gif',
- 'd:\www\drbob42\gif\robohlp2.gif',
- 'd:\www\drbob42\gif\robohlp3.gif',
- 'd:\www\drbob42\gif\robohlp4.gif');
- var
- FileStream: TFileStream;
- Banner: Integer;
- begin
- try
- Banner := Random(MaxBanners);
- FileStream := TFileStream.Create(
- Banners[Banner],
- fmOpenRead OR fmShareDenyNone);
- try
- FileStream.Position := 0;
- Response.ContentType := 'image/gif';
- Response.ContentStream := FileStream;
- Response.SendResponse; // send header + Stream
- AddLogEntry(Banners[Banner]+' shown (random)')
- finally
- FileStream.Free
- end
- except
- end
- end;
-
- procedure TWebModule1.WebModule1WebActionItem3Action(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- var
- URL: String;
- begin
- URL := Request.QueryFields.Values['URL'];
- Response.SendRedirect(URL);
- AddLogEntry('Redirection to '+URL)
- end;
-
- procedure TWebModule1.PageProducer1HTMLTag(Sender: TObject; Tag: TTag;
- const TagString: String; TagParams: TStrings; var ReplaceText: String);
- begin
- if TagString = 'REPORT' then
- ReplaceText := LogEntries
- end;
-
- initialization
- Randomize;
- end.
-
-